A Simplified Java Compilation System for Resource-Constrained Embedded Processors∗
نویسندگان
چکیده
Embedded platforms are resource-constrained systems in which performance of executed code is of critical importance. However, standard techniques such as full just-in-time(JIT) compilation and/or adaptive optimization (AO) may not be appropriate for this type of systems due to memory and compilation overheads. The research presented in this paper proposes a technique that combines some of the main benefits of JIT compilation, superoperators(SOs) and profile-guided optimization, in order to deliver a lightweight Java compilation system, targeted for resource-constrained environments, that achieves runtime performance similar to that of state-of-the-art JIT/AO systems, while having a minimal impact on runtime memory consumption. The key ideas are to use profiler-selected, extended bytecode basic blocks as superoperators (new bytecode instructions) and to perform few, but very targeted, standard JIT/AO optimizations at compile time only on the superoperators’ bytecode, as directed by compilation “hints” passed on as annotations. As such, our system achieves competitive performance to a JIT/AO system, but with a much lower impact on runtime memory consumption. Moreover, we show that our proposed VM is able to further improve upon the achieved runtime performance by selectively inlining method calls embedded in the chosen superoperators, as directed by runtime profiling data. For experimental evaluation, we developed three incremental Virtual Machines(VMs) that employ the ideas presented above. The customized VMs are first compared (w.r.t. runtime performance) to a simple, fast-to-develop VM (baseline) and then to a VM that employs JIT/AO. Our best-performing system attains speedups ranging from a factor of 1.52 to a factor of 3.07, w.r.t. to the baseline VM. When compared to a state-of-the-art JIT/AO VM, our proposed system performs better for three of the benchmarks and worse for 3 others. However, our SO-extended VM outperforms the JIT/AO system by a factor of 16, on average, w.r.t. runtime memory consumption. We also show that selectively inlining method calls embedded in ∗This work was supported in part by the National Science Foundation under grants NSF CCF-0311738 and CNS-0220069
منابع مشابه
Optimizing Java Bytecode for Embedded Systems
Modern Java Virtual Machines (JVM) for desktop and server computers use just-in-time (JIT) compilation to increase their performance. For embedded Java processors, JIT usually is not feasable. Therefore the java bytecode needs to be optimized for a specific platform ahead-of-time. To generate optimized bytecode for the JOP Java processor several existing tools were compared. In order to impleme...
متن کاملTargeting Dynamic Compilation for Embedded Environments
A generally held notion is that high quality code comes with high compilation cost. As a result, previous efforts at minimizing dynamic compilation costs have focused on designing fast, lightweight compilers that sacrifice code quality for compilation speed, and resource intensive approaches that combine multiple engines to limit expensive optimizations to critical sections. In this paper, we s...
متن کاملArchitectural Issues in Java Runtime Systems
The Java Virtual Machine (JVM) is the corner stone of Java technology, and its eeciency in executing the portable Java bytecodes is crucial for the success of this technology. Interpretation, Just-In-Time (JIT) compilation , and hardware realization are well known solutions for a JVM, and previous research has proposed optimizations for each of these techniques. However, each technique has its ...
متن کاملProfile-driven code unloading for resource-constrained JVMs
Java virtual machines (JVMs) have become increasingly popular for execution of a wide range of applications on mobile and embedded devices. Most JVMs for such devices execute programs using interpretation. However, JVMs that use dynamic compilation have been shown to enable significant performance improvements. A disadvantage of a compile-only approach in resource-constrained environments is th...
متن کاملA selective dynamic compiler for embedded Java virtual machines targeting ARM processors
This paper presents a new selective dynamic compilation technique targeting ARM 16/32-bit embedded system processors. This compiler is built inside the J2ME/CLDC (Java 2 Micro Edition for Connected Limited Device Configuration) platform [Sun MicroSystems, Java 2 Platform, Micro Edition, Version 1.0 Connected, Limited Device Configuration, Specification, Technical Report, Sun Microsystems, CA, U...
متن کامل